/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package huella;

/**
 *
 * @author allan
 */
import java.sql.*;
import javax.swing.JOptionPane;
import javax.swing.table.TableModel;
import javax.swing.table.DefaultTableModel;



public class Conexion {
public String bd = "huella";
public String login = "root";
public String password = "root";
public String url = "jdbc:mysql://localhost:3311/"+bd;
private Persona pers=new Persona();

Connection conn = null; 
    
   public  Conexion() { 
      try{    
          
          
          
         Class.forName("com.mysql.jdbc.Driver");          
         conn = DriverManager.getConnection(url,login,password); 
         if (conn!=null){ 
            //JOptionPane.showMessageDialog(null,"Conexión a base de datos "+bd+". listo"); 
         } 
      }catch(SQLException e){ 
         System.out.println(e); 
      }catch(ClassNotFoundException e){ 
         System.out.println(e); 
      } 
   } 
    
   public Connection getConnection(){ 
      return conn; 
   } 
 
   public void desconectar(){ 
      conn = null; 
   }
   
   
//___________________________________________________________________________________ Soy una barra separadora :)
/* METODO PARA REALIZAR UNA CONSULTA A LA BASE DE DATOS
 * INPUT:  
 *      table => nombre de la tabla donde se realizara la consulta, puede utilizarse tambien INNER JOIN
 *      fields => String con los nombres de los campos a devolver Ej.: campo1,campo2campo_n
 *      where => condicion para la consulta
 * OUTPUT: un object[][] con los datos resultantes, sino retorna NULL
 */
   /**
    * 
    * @param table
    * @param fields
    * @param where
    * @return
    */
   public Object [][] select(String table, String fields, String where){
      int registros = 0;      
      String colname[] = fields.split(",");

      //Consultas SQL
      String q ="SELECT " + fields + " FROM " + table;
      String q2 = "SELECT count(*) as total FROM " + table;
      if(where!=null)
      {
          q+= " WHERE " + where;
          q2+= " WHERE " + where;
      }
       try{
         PreparedStatement pstm = conn.prepareStatement(q2);
         ResultSet res = pstm.executeQuery();
         res.next();
         registros = res.getInt("total");
         res.close();
      }catch(SQLException e){
         System.out.println(e);
      }
    
    //se crea una matriz con tantas filas y columnas que necesite
    Object[][] data = new String[registros][fields.split(",").length];
    //realizamos la consulta sql y llenamos los datos en la matriz "Object"
      try{
         PreparedStatement pstm = conn.prepareStatement(q);
         ResultSet res = pstm.executeQuery();
         int i = 0;
         while(res.next()){
            for(int j=0; j<=fields.split(",").length-1;j++){
                data[i][j] = res.getString( colname[j].trim() );
            }
            i++;         }
         res.close();
          }catch(SQLException e){
         System.out.println(e);
    }
    return data;
 }
 
//____________________________________________________________________________________________________________________________________
   
  /* public boolean ingresar(String user, String contra)
    {        
        Object[][] res = this.select("usuario", " usuario , contrasena ", " usuario='"+user+"' AND contrasena='"+contra+"' ");
        if( res.length > 0)
        {
            pers.setNombre( res[0][0].toString() );
            pers.setContraseña( res[0][1].toString() );
            
            return true;
        }        
        else
            return false;
    }*/
   
  //____________________________________________________________________________________________________________________________________ 
   
   
 /*  public void NuevaPersona(String nom2){
       try {            
            PreparedStatement pstm =this.getConnection().prepareStatement("insert into " + 
                    "usuario (NOMBRE) " +
                    " values(?)"); 
             
            pstm.setString(1, nom2);
            pstm.execute();
            pstm.close();
            JOptionPane.showMessageDialog(null, "Usuario"+" "+nom2+" "+"Creado correctamente");
            
         }catch(SQLException e){
         System.out.println(e);
      }
   }*/
    
}
